package com.sinog.front.feign.basic;

import com.sinog.core.utilbean.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @desc 系统管理 - 角色管理 - 角色管理 - RoleService - feign
 * @author -
 * @date -
 */
@FeignClient("sinog2c-basic")
public interface RoleService {

    /**
     * 系统管理 - 角色管理 - 角色管理 - 保存角色信息（修改/新增）
     * @param data data
     * @return Result
     */
    @PostMapping("basic/role")
    Result save(@RequestParam("data") String data);

    /**
     * 系统管理 - 角色管理 - 角色管理 - 根据ID删除角色
     * @param id id
     * @return Result
     */
    @DeleteMapping("basic/role/{id}")
    Result deleteOne(@PathVariable("id") String id);

    /**
     * 系统管理 - 角色管理 - 角色管理 - 根据ID查询角色详情
     * @param id id
     * @return Result
     */
    @GetMapping("basic/role/{id}")
    Result selectOne(@PathVariable("id") String id);

    /**
     * 系统管理 - 角色管理 - 角色管理 - 获取角色列表数据
     * @param rolekey rolekey
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param sortField sortField
     * @param sortOrder sortOrder
     * @param loginUserLevel loginUserLevel
     * @return String
     */
    @GetMapping("/basic/role")
    String selectRoleList(
            @RequestParam("rolekey") String rolekey,
            @RequestParam("pageIndex") Integer pageIndex,
            @RequestParam("pageSize") Integer pageSize,
            @RequestParam("sortField") String sortField,
            @RequestParam("sortOrder") String sortOrder,@RequestParam("loginUserLevel") String loginUserLevel);

    /**
     * 系统管理 - 角色管理 - 角色管理 - 模糊查询角色列表
     * @param reskey reskey
     * @param loginUserlevel loginUserlevel
     * @return Result
     */
    @GetMapping("/basic/user/getUserRoleList/{reskey}")
    Result getAllRoleList(@PathVariable("reskey") String reskey,@RequestParam("loginUserlevel") String loginUserlevel);
}